iT邦幫忙

2023 iThome 鐵人賽

DAY 11
0
SideProject30

年輕人,想玩自己寫!系列 第 11

第十章,我這一鍵下去,你可能會被更新!

  • 分享至 

  • xImage
  •  

電影裡,總是把工程師演成一種擁有超能力的角色,
一鍵破解密碼、一鍵駭入你電腦、一鍵上傳下載(就想問他的網路是哪家電信的……)
炸車炸房什麼的好像都很簡單,
還能「發明」新元素,飛上天什麼的……喔,那是「鈔能力」
而現實中的工程師們很清楚,我這一鍵下去……
不要有Bug、能正常Build、不要一堆紅字,真的就要偷笑了。

每個人的開發環境、各SDK或工具的路徑都會有些許不同,
更不用說很多專案還有套件的問題,
如果再加上是老專案年久失修,
或是有傻冒同事將自己電腦的Config或路徑整合到專案,
那真的會欲哭無淚。
「每一次拿到專案,都是踩抗的開始」
這就是為什麼要有CI/CD的導入!

什麼是CI/CD?

CI/CD

  • 持續整合 CI (Continuous Integration)
    其實就是設法讓前面說的那些坑消失,而且自動化的過程。
    包含了建置及持續測試,一般是將code push到儲存庫後,就會進入CI的流程。
    機器會自動的將新的code與專案整合,並試著建置,
    由於是設定好的環境,所以每次建置的條件及環境是固定的,或者是可預期的。
    如果有寫好Unit Test的話,機器還會自動在建置完後跑測試。
    這樣一來,不論前面提到的踩坑之旅,還是品質低下的code,都會即時自動找出來。

  • 持續部署 CD (Continuous Deployment)
    有設定好部署部份的話,機器也能在確認測試結果正常後,幫工程師把專案發布出去。
    一般是會先將其發布到beta版,這樣相當於在工程師寫好後,
    一口氣完成建置、Unit Test並交付給品管人員,
    也能透過改動一些參數,直接上架喔!

所以要怎麼實作這個CI/CD

其實有很多很多種方式去實作,網路上也有許多方案與教學。
一個完整的CI/CD可能會長這樣:
很標準的 CI/CD 流程圖
常見的工具:
GitLab(常用)
GitHub
Jenkins(老牌,建議了解)
同時也有一些像Fastlane之類的開源工具。
而本篇要說明的……都不是這些~
是更加簡單,適合個人小型專案的 -- Codemagic

Codemagic

這是一個第三方的網頁平台,若你擔心源碼被第三方存取,那就不建議用這個了。
但如果你本來就是放在像GitLab、GitHub之類的平台,
而且本身就是小型的專案,那就更適合這個方法了。
直接就能和你的儲存庫連結,並快速發布。

  1. 第一步,登入或註冊,我會覺得如果是放在GitHub或GitLab的專案,直接綁定平台登入就好了,反正後面也要給他存取權。https://ithelp.ithome.com.tw/upload/images/20230926/20162723b8YuftgzOm.png
  2. 第二步,連結你的code儲存庫,像我這邊本來就是用GitHub登入的,就不用再認證了https://ithelp.ithome.com.tw/upload/images/20230926/20162723RlrhFwSigm.png
  3. 第三步,選專案,你一進來應該會什麼都看不到。別擔心,按上面那個藍色的連結就能去GitHub設定了,Codemagic平台只能看到你想讓他看的專案。記得要選專案用的框架。https://ithelp.ithome.com.tw/upload/images/20230926/20162723C2aSG2vcZU.png
  4. 第四步,接下來就是設定建置環境的部份了,先是平台與機器,不用也沒什麼可以選,因為我們也沒花錢~https://ithelp.ithome.com.tw/upload/images/20230926/20162723w3VOaZrFCF.png
  5. 第五步,Build triggers,這是很神奇的部份,Codemagic會監控你的專案,如果出現你定好的行為時,他就會自動開始CI流程,並留下記錄。例如:如果你勾了「Trigger on push」,然後在Watched tag patterns裡寫下「*-haha」,那你只要每次push的code代上tag「haha」時,流程就會被啟動了~https://ithelp.ithome.com.tw/upload/images/20230926/20162723Lov1UTk2Od.png
  6. 第六步,選SDK、選環境、選Path,一開始進來會都幫你選好環境,但Path是空的,記得要自己都確認過一次各版本是不是你要的、有沒有確實指向專案、要打包debug還是relaesehttps://ithelp.ithome.com.tw/upload/images/20230926/20162723xsbqsgTw3X.png
  7. 第七步,所有的金鑰及憑證,包含Android打包正式版需要的keystore,iOS我們昨天提過的certificate及profiles,如果要一起完成CD的流程,那就還需要上架平台的許可。https://ithelp.ithome.com.tw/upload/images/20230926/20162723jxa4cHUAfE.png

這樣就可以完成你的CI/CD囉~
才怪!/images/emoticon/emoticon82.gif
總之,如果還有問題,他也有豐富的資源可以幫你解惑。
當你習慣了寫測試、自己測完上git,並讓codemagic幫你CI/CD時,
才是真正學會的時候,不過現在先當即時的整合工具使用,也是很不錯的~
流程完成就像這樣:(因為目前沒寫測試,所以照片少了Test的部份)
https://ithelp.ithome.com.tw/upload/images/20230926/201627235V818X4ZpC.png

延伸推薦:用GitLab 和 Fastlane設置的CI/CD

參考
CI/CD (持續性整合 / 部署) - 因為懶,所以更要 CI/CD!概念講解!
[學習筆記] 簡單了解 CI/CD 是什麼吧
架構師觀點: 你需要什麼樣的 CI / CD ?
Flutter 里的持续部署(Flutter官方)
使用 Codemagic 持续部署 Flutter 应用
使用 CodeMagic 和 Firebase 實現 Flutter CICD


上一篇
第九章,工程師不寫文件?你要確定餒!上架注意事項(下)
下一篇
第十一章,對於專案進度,我決定立個碑
系列文
年輕人,想玩自己寫!31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言